package ar.edu.unju.fi.uicomponents.validators;

import java.util.ArrayList;

import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

import ar.edu.unju.fi.model.dao.PedidoDAO;
import ar.edu.unju.fi.model.dao.impl.PedidoDAOImpl;
import ar.edu.unju.fi.model.domain.Pedido;
import ar.edu.unju.fi.uicomponents.beans.BaseBean;
/**
 * @return este metodo nos direcciona a detallePedido.xhtml si ingresamos con una fecha valida
 * @author Fernando
 *
 */
@FacesValidator(value="ValidarFechaPedido")
public class ValidarFechaPedido extends BaseBean implements Validator {

	public void validate(FacesContext contex, UIComponent component, Object value)
			throws ValidatorException {
			
			PedidoDAO pedidoDAO = getServicio().getPedidoDAO();
			List<Pedido> list = new ArrayList<Pedido>();
			Date fecha = (Date)value;
			
			if(fecha.before(new Date())){
				FacesMessage faceMessage = new FacesMessage(FacesMessage.SEVERITY_FATAL,"Fecha Incorrecta",null);
				throw new ValidatorException(faceMessage);
				
			}else{
					
					list = pedidoDAO.getFecha(fecha);
					if(!list.isEmpty()){
						FacesMessage faceMessage = new FacesMessage(FacesMessage.SEVERITY_FATAL,"Pedido Registrado",null);
						throw new ValidatorException(faceMessage);
					}
				
			}
	
	}
}
